import { doGet, appJsonPost } from '@/network/request';
import axios from "axios"; // 请根据实际路径导入 axios 相关方法

// 获取 CSRF Token
function getCsrfToken() {
    const name = 'XSRF-TOKEN=';
    const decodedCookie = decodeURIComponent(document.cookie);
    const cookies = decodedCookie.split(';');
    for (let i = 0; i < cookies.length; i++) {
        const cookie = cookies[i].trim();
        if (cookie.indexOf(name) === 0) {
            return cookie.substring(name.length, cookie.length);
        }
    }
    return '';
}

/**
 * 添加点赞
 * @param liked
 */
export function addLikeApi(liked) {
    return appJsonPost({
        url: '/likes',
        data: liked,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 删除点赞
 * @param resourceId
 * @param userId
 */
export function removeLikeApi(resourceId, userId) {
    return axios.delete(`/likes`, // 请求URL
        {
            params: { resourceId, userId }, // 将资源 ID 和用户 ID 作为请求参数传递
            headers: {
                'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
            }
        }
    );
}



/**
 * 查询用户的所有点赞
 * @param userId
 */
export function getUserLikesApi(userId) {
    return doGet({
        url: `/likes/${userId}`, // 请求URL
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 查看某个资源的点赞总数
 * @param resourceId
 */
export function getLikeCountApi(resourceId) {
    return doGet({
        url: `/likes/count/${resourceId}`, // 请求URL
        // params: { resourceId }, // 使用请求参数形式传递 resourceId
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}
export function checkUserLikedApi(userId, resourceId) {
    return doGet({
        url: `/likes/check`, // 请求URL
        params: { userId, resourceId }, // 使用请求参数形式传递 userId 和 resourceId
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

